package bit;
/*
 *  所有的位运算都是基于二进制
 *  &  位运算与: 都为1则落1
 *  |  位运算或： 有1则落1
 *  ^  位运算异或：相同落0，不同落1
 *  ~  位运算取反：~n = -(n+1) 
 *  << 左移运算符  n << m  n*(2^m)
 *  >> 右移运算符  n >> m  n/(2^m) 
 */
public class Demo {
	public static void main(String[] args) {
		int i = 5;
		int j = 7;
		System.out.println(i & j); // 101 = 5
		System.out.println(i | j); // 111 = 7
		System.out.println(i ^ j); // 010 = 2
		System.out.println(~i);   //  -6
		
		System.out.println(34 & 28);
		System.out.println(37 | 29);
		System.out.println(35 ^ 17);
		
		System.out.println(5 << 3);
		System.out.println(100 >> 3);
	}
}
